Many programmable controllers, including many HVAC controllers, have a microcontroller or microprocessor that executes a software program stored in memory. In many cases, the software program is executed using an interpreter engine. An interpreter engine typically takes a program stored in a meta-language or the like, compiles and interprets the program, and then execute the interpreted instructions. In many cases, the interpreter engine executed the software program either wholly or partially from random-access memory (RAM).
One common problem with many programmable controllers is that they can require a substantial amount of RAM memory in order to execute even relatively simple software programs. This can be especially true when the programmable controller uses an interpreter engine to execute the program code. RAM, being a relatively expensive form of memory, can greatly increase the cost of manufacturing and producing a programmable controller. The least expensive form of a processor is often a microcontroller, which typically only has a limited amount of on-board RAM. What would be desirable, therefore, is a low cost programmable controller that can execute relatively complex software programs using only a minimal amount of RAM resources.